Java文件的读(写)汇总[ InputStream(Reader)、BufferedInputStream 、BufferedReader、FileInputStream、FileReader ]
[ InputStream 、InputStreamReader、BufferedInputStream 、BufferedReader、FileInputStream、FileReader ]
&&
[ OutputStream、OutputStreamWriter、BufferedOutputStream、BufferedWriter、FileOutputStream、FileWriter ]
InputStream && OutputStream:
- 是老大!!!
- 将字节流转换成字符流
InputStreamReader&& OutputStreamWriter:
- 将字节流转换成字符流 —> 创建字符流缓冲区
BufferedInputStream && BufferedOutputStream:
- 数据流的缓存,没有缓冲的操作
- 读一个字节,写一个。磁盘的IO比内存的操作慢
- 所以不带缓冲的额流会比带缓冲的流慢
BufferedReader && BufferedWriter
- 高效读取
- 从字符输入流中读取文本,缓冲各个字符
FileInputStream && FileOutputStream
- 老大InputSream的子类
- 一般用来读取二进制文件
- 文本文件使用read(byte[] b)方法读取整个文件,再byte数组转换为String
FileReader && FileWriter
- InputStreamReader的子类
- 按字符读取流中数据
还有很多。。。更新中。。。
InputStream && OutputStream
private static void rwIOStream() throws Exception {
InputStream in =new FileInputStream("fileIn\\txt1");
OutputStream out = new FileOutputStream("fileOut\\txt1");
int len;
long begin = System.currentTimeMillis();
while((len=in.read())!=-1)
{
out.write(len);
}
long end = System.currentTimeMillis();
System.out.println(end-begin);
in.close();
out.close();
}
InputStreamReader&& OutputStreamWriter
private static void rwIOStreamRW() throws Exception {
InputStreamReader inReader =new InputStreamReader(new FileInputStream("fileIn\\txt1"));
OutputStreamWriter outWriter =new OutputStreamWriter(new FileOutputStream("fileIn\\txt1"));
int len;
long begin = System.currentTimeMillis();
while((len=inReader.read())!=-1)
{
outWriter.write(len);
}
long end = System.currentTimeMillis();
System.out.println(end-begin);
inReader.close();
outWriter.close();
}
BufferedInputStream && BufferedOutputStream
private static void rwBufferedIOStram() throws Exception {
BufferedInputStream in = new BufferedInputStream(new FileInputStream("fileIn\\txt1"));
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("fileOut\\txt1"));
long begin = System.currentTimeMillis();
int len;
while((len=in.read())!=-1)
{
out.write(len);
//System.out.print((char)len); // 字符打印
}
long end = System.currentTimeMillis();
System.out.println(end-begin);
in.close();
out.close();
}
BufferedReader && BufferedWriter
private static void rwBufferedRWr() throws Exception {
BufferedReader reader = new BufferedReader(new FileReader("fileIn\\txt1"));
BufferedWriter writer = new BufferedWriter(new FileWriter("fileIn\\txt1"));
int len;
long begin = System.currentTimeMillis();
while((len = reader.read())!=-1)
{
writer.write(len);
//System.out.print((char)len);
}
long end = System.currentTimeMillis();
System.out.println(end-begin);
reader.close();
writer.close();
}
FileInputStream && FileOutputStream
private static void rwFileIOStream() throws Exception {
FileInputStream reader = new FileInputStream("fileIn\\txt1");
FileOutputStream writer = new FileOutputStream("fileIn\\txt1");
int len;
long begin = System.currentTimeMillis();
while((len = reader.read())!=-1)
{
writer.write(len);
//System.out.print((char)len);
}
long end = System.currentTimeMillis();
System.out.println(end-begin);
reader.close();
writer.close();
}
FileReader && FileWriter
private static void rwFile() throws Exception {
FileReader reader = new FileReader("fileIn\\txt1");
FileWriter writer = new FileWriter("fileOut\\txt1");
int len;
long begin = System.currentTimeMillis();
while((len = reader.read())!=-1)
{
writer.write(len);
//System.out.print((char)len);
}
long end = System.currentTimeMillis();
System.out.println(end-begin);
reader.close();
writer.close();
}
程序
package file;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
public class filecopy {
public static void main(String[] avg) throws Exception
{
try {
//复制例
song();
//字符读写 切割处理
rwFileSplitEnglish();
//InputStream && OutputStream
rwIOStream();
//InputStreamReader && OutputStreamWriter
rwIOStreamRW();
//BufferedInputStream && BufferedOutputStream
rwBufferedIOStram();
//BufferedReader && BufferedWriter
rwBufferedRWr();
//FileInputStream && FileOutputStream
rwFileIOStream();
//FileReader && FileWriter
rwFile();
} catch (Exception e) {
e.printStackTrace();
}
}
private static void rwIOStream() throws Exception {
InputStream in =new FileInputStream("fileIn\\txt1");
OutputStream out = new FileOutputStream("fileOut\\txt1");
int len;
long begin = System.currentTimeMillis();
while((len=in.read())!=-1)
{
out.write(len);
}
long end = System.currentTimeMillis();
System.out.println(end-begin);
in.close();
out.close();
}
private static void rwIOStreamRW() throws Exception {
InputStreamReader inReader =new InputStreamReader(new FileInputStream("fileIn\\txt1"));
OutputStreamWriter outWriter =new OutputStreamWriter(new FileOutputStream("fileIn\\txt1"));
int len;
long begin = System.currentTimeMillis();
while((len=inReader.read())!=-1)
{
outWriter.write(len);
}
long end = System.currentTimeMillis();
System.out.println(end-begin);
inReader.close();
outWriter.close();
}
private static void rwBufferedIOStram() throws Exception {
BufferedInputStream in = new BufferedInputStream(new FileInputStream("fileIn\\txt1"));
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("fileOut\\txt1"));
long begin = System.currentTimeMillis();
int len;
while((len=in.read())!=-1)
{
out.write(len);
//System.out.print((char)len); // 字符打印
}
long end = System.currentTimeMillis();
System.out.println(end-begin);
in.close();
out.close();
}
private static void rwBufferedRWr() throws Exception {
BufferedReader reader = new BufferedReader(new FileReader("fileIn\\txt1"));
BufferedWriter writer = new BufferedWriter(new FileWriter("fileIn\\txt1"));
int len;
long begin = System.currentTimeMillis();
while((len = reader.read())!=-1)
{
writer.write(len);
//System.out.print((char)len);
}
long end = System.currentTimeMillis();
System.out.println(end-begin);
reader.close();
writer.close();
}
private static void rwFileIOStream() throws Exception {
FileInputStream reader = new FileInputStream("fileIn\\txt1");
FileOutputStream writer = new FileOutputStream("fileIn\\txt1");
int len;
long begin = System.currentTimeMillis();
while((len = reader.read())!=-1)
{
writer.write(len);
//System.out.print((char)len);
}
long end = System.currentTimeMillis();
System.out.println(end-begin);
reader.close();
writer.close();
}
private static void rwFile() throws Exception {
FileReader reader = new FileReader("fileIn\\txt1");
FileWriter writer = new FileWriter("fileOut\\txt1");
int len;
long begin = System.currentTimeMillis();
while((len = reader.read())!=-1)
{
writer.write(len);
//System.out.print((char)len);
}
long end = System.currentTimeMillis();
System.out.println(end-begin);
reader.close();
writer.close();
}
private static void rwFileSplitEnglish() throws Exception {
String str = "";
FileReader reader = new FileReader("fileIn\\txt1");
int len;
while((len = reader.read())!=-1)
str +=(char)len;
reader.close();
System.out.println(str);
String re = " ";
String s[] = str.split(re);
for (int i = 0; i < s.length; i++) {
System.out.print(s[i]);
}
System.out.println(str.length());
}
private static void song() throws Exception {
InputStream in = new FileInputStream("fileIn\\你一生的故事.mp3");
OutputStream out = new FileOutputStream("fileOut\\你一生的故事2.mp3");
int len;
long begintime = System.currentTimeMillis();
while((len=in.read())!=-1)
{
out.write(len);
}
long endtime = System.currentTimeMillis();
System.out.println(endtime-begintime);
in.close();
out.close();
}
}
原文作者: 冯亚杰(DanBoard·Feng)
版权声明: 转载请注明出处(必须保留作者署名及链接)